package br.com.manutencaocarro.helper;

import java.util.ArrayList;
import java.util.List;

import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import br.com.manutencaocarro.ColetaMontadoras;
import br.com.manutencaocarro.R;
import br.com.manutencaocarro.activity.CadastraCarroActivity;
import br.com.manutencaocarro.modelo.Carro;
import br.com.manutencaocarro.modelo.Montadora;

public class CadastroCarroHelper 
{
	private Spinner modelo;
	private EditText ano_fabricacao;
	private EditText ano_modelo;
	private EditText numPortas;
	private static Spinner sMontadora;
	private static Spinner sCarros;

	public CadastroCarroHelper() {
	}

	public CadastroCarroHelper(CadastraCarroActivity cadastraCarroActivity, Carro carroSelecionado) 
	{
		ano_fabricacao = (EditText) cadastraCarroActivity.findViewById(R.id.ano_fabricacao);
		ano_modelo = (EditText) cadastraCarroActivity.findViewById(R.id.ano_modelo);
		numPortas = (EditText) cadastraCarroActivity.findViewById(R.id.num_portas);
		modelo = (Spinner) cadastraCarroActivity.findViewById(R.id.modelocarro);

		if( carroSelecionado == null )
		{
			ColetaMontadoras coleta = new ColetaMontadoras();
			coleta.invokeWSMontadoras(null, cadastraCarroActivity);
		}
	}

	public Carro pegaCarroCadastro( CadastraCarroActivity cadastraCarroActivity )
	{
		Carro carro = new Carro();
		carro.setAno_fabricacao(ano_fabricacao.getText().toString());
		carro.setAno_modelo(ano_modelo.getText().toString());

		if( !numPortas.getText().toString().equals( "" ) )
			carro.setNumPortas(Integer.valueOf(numPortas.getText().toString()));
		else
			carro.setNumPortas(0);

		sMontadora = (Spinner) cadastraCarroActivity.findViewById(R.id.montadora);
		sCarros = (Spinner) cadastraCarroActivity.findViewById(R.id.modelocarro);

		String carroAux = sCarros.getSelectedItem().toString();

		carro.setId(Integer.valueOf(carroAux.split(" - ")[0]).intValue());
		carro.setModelo(carroAux.split(" - ")[1]);
		carro.setIdMontadora(Integer.valueOf(sMontadora.getSelectedItem().toString().split(" - ")[0]) );
		carro.setNomeMontadora( sMontadora.getSelectedItem().toString().split(" - ")[1] );

		return carro;
	}

	public void colocaCarroNoFormulario( CadastraCarroActivity cadastraCarroActivity, Carro carroSelecionado ) 
	{
		ano_fabricacao.setText(carroSelecionado.getAno_fabricacao());
		ano_modelo.setText(carroSelecionado.getAno_modelo());
		numPortas.setText(String.valueOf(carroSelecionado.getNumPortas()));

		List<Montadora> montadoras = new ArrayList<>();
		Montadora m = new Montadora();
		m.setIdMontadora(carroSelecionado.getIdMontadora());
		m.setNomeMontadora(carroSelecionado.getNomeMontadora());
		montadoras.add(m);

		ArrayAdapter<Montadora> adapter = new ArrayAdapter<>( cadastraCarroActivity, android.R.layout.simple_spinner_item, montadoras );
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
		sMontadora = (Spinner) cadastraCarroActivity.findViewById(R.id.montadora);
		sMontadora.setAdapter(adapter);

		List<Carro> carros = new ArrayList<>();
		carros.add(carroSelecionado);

		ArrayAdapter<Carro> adapterCarro = new ArrayAdapter<>( cadastraCarroActivity, android.R.layout.simple_spinner_item, carros );
		adapterCarro.setDropDownViewResource(android.R.layout.simple_spinner_item);
		sCarros = (Spinner) cadastraCarroActivity.findViewById(R.id.modelocarro);
		sCarros.setAdapter(adapterCarro);
	}

	public void setReadOnly() {
		sMontadora.setEnabled(false);
		sCarros.setEnabled(false);
		modelo.setEnabled(false);
		ano_fabricacao.setEnabled(false);
		ano_modelo.setEnabled(false);
		numPortas.setEnabled(false);
		sMontadora.setClickable(false);
	}
}